<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="../css/importArquivos.css" type="text/css"/>
</head>
<?php
if(isset($_GET['cod'])){
    $nomeArquivo = $_GET['cod'];
    include("../funcoes/funcoes.php");
    include_once("../mysql_connect/conexao.php");
    $arquivo = fopen('uploads_enviados/'.$nomeArquivo, 'r');
    $verificaArquivo = fopen('uploads_enviados/'.$nomeArquivo, 'r');

        // LAÇO DE REPETIÇÃO PARA VERIFICAR OS DADOS.
        $registroDuplicado = false;
        $erroDuplicado = "<h2>Os seguintes registros estão duplicados:</h2><br/>
                           <div class='nav'><table style='Width:100%' border='1' align>
                            <tr>
                               <th>Funcionario</th><th>Matricula</th><th>Data Lançamento</th>
                            </tr>";
        $erro = false;

        // Variaveis utilizadas no código para verificar e informar uma inexistencia de uma ou mais matriculas no banco de dados.
        $erroMatricula = "<h2>As seguintes matriculas da planilha não estão cadastradas no sistema:</h2><br/><br/>";
        $guardaMatricula = "";
        $verificaMatricula = "";

        while(!feof($verificaArquivo)){
            $verificaLinha = fgets($verificaArquivo, 2048);
            $verificaDados = explode(';', $verificaLinha);

            //if criado para verificar se a coluna da matricula é númerica e diferente de 'Matricula'
            if ($verificaDados[0]!= strtolower("Matricula") && (is_numeric($verificaDados[0]))){
                /**
                 * COMO HÁ DOIS TIPOS DE MATRICULA (MATRICULA E MATRICULACLIENTE) E SÓ POSSUÍMOS
                 * A MATRICULA DO CLIENTE, ENTÃO FOI CRIADO UMA BUSCA NA TABELA FUNCIONARIO PARA
                 * ENCONTRAR A MATRICULA DA EMPRESA E PREENCHER NA FOREIGN KEY DA TABELA ponto
                 */
                $buscaMatricula = "SELECT matricula, matriculaCliente, nome FROM funcionario WHERE matriculaCliente = '".utf8_encode($verificaDados[0])."'";
                $query = mysqli_query($conexao, $buscaMatricula);
                $resultado =  mysqli_fetch_assoc($query);
                //-----------------------------------------------------------------------------//

                //RECEBENDO VALORES DO BANCO E DA PLANILHA
                $nome = $resultado['nome'];
                $matriculaCliente = $resultado['matriculaCliente'];
                $data = datatoEN(utf8_encode(@$verificaDados[2]));
                //-----------------------------------------------/


                //VERIFICANDO SE AS MATRICULAS DA PLANILHA SE ENCONTRAM NA TABELA DE FUNCIONÁRIO
                if(is_numeric($verificaDados[0])){
                    $buscaMatricula = "SELECT matriculaCliente FROM funcionario where matriculaCliente = '".utf8_encode($verificaDados[0])."'";
                    $query = mysqli_query($conexao, $buscaMatricula);
                    if (mysqli_num_rows($query) <=0){
                        $guardaMatricula = $verificaDados[0];
                        if ( $verificaMatricula != $guardaMatricula){
                            $verificaMatricula = $guardaMatricula;
                            $erroMatricula .= "<h3>".utf8_encode(@$verificaDados[0])." - ".utf8_encode(@$verificaDados[1])."</h3><br/>";
                            $erro = true;
                        }

                    }
                }


                // VERIFICANDO SE O USUÁRIO ESTÁ DUPLICADO.
                $sql = sprintf("SELECT * FROM ponto WHERE FKfuncionario = '%s' and dataPonto = '%s'",utf8_encode(@$resultado['matricula']),$data);
                echo $sql;
                $verificaDuplicidade=mysqli_query( $conexao ,$sql);

                // SE O RESULTADO DO IF FOR MAIOR DO QUE ZERO QUE DIZER QUE HÁ REGISTRO DUPLICADO.
                if (mysqli_num_rows($verificaDuplicidade) > 0) {
                    $erroDuplicado .=  "<tr><td> ".$nome."</td> <td>".$matriculaCliente."</td><td>".$data."</td></tr>";
                    $registroDuplicado = true;
                    $erro = true;
                }




                //IF PARA VERIFICAR SE AS COLUNAS DA PLANILHA ESTÃO POSICIONADAS CORRETAMENTE.
                if( (@$verificaDados[4] != "") && (@$verificaDados[5] == "")){
                    echo "<script>alert('(1)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                    echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                    exit();
                }

                if( (@$verificaDados[6] != "") && (@$verificaDados[7] == "")){
                    echo "<script>alert('(2)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                    echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                    exit();
                }

                if( (@$verificaDados[8] != "") && (@$verificaDados[9] == "")){
                    echo "<script>alert('(3)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                    echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                    exit();
                }
                if( (@$verificaDados[10] != "") && (@$verificaDados[11] == "")){
                    echo "<script>alert('(4)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                    echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                    exit();
                }
                if( (@$verificaDados[12] != "") && (@$verificaDados[13] == "")){
                    echo "<script>alert('(5)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                    echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                    exit();
                }
                if( (@$verificaDados[14] != "") && (@$verificaDados[15] == "")){
                    echo "<script>alert('(6)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                    echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                    exit();
                }

            }
        }
?>
<body>
<?php
        if(($verificaMatricula != "") ||($registroDuplicado == true) ){
            if ($verificaMatricula != ""){
                echo $erroMatricula;
            }
            if($registroDuplicado == true){
                echo $erroDuplicado."</table>";
            }
        }
?>

    <br/><br/><a href="../menu.php"> <input class="button" type="button" name="prosseguir" value="OK"></a>
</body>
<?php

    $contRegistro = 0;
    // laço de repetição para inserir na tabela os dados que foram aceitos na verificação do primeiro laço.
    if ($erro != true){
        while(!feof($arquivo)){
            $linha = fgets($arquivo, 1024);
            $dados = explode(';', $linha);


            /**
             * if criado para verificar se o campo da matricula e da data de lançamento estão corretos,
             * caso não, não será executada a query evitando que insira dados incorretos no banco de dados.
            */
            if((is_numeric(@$dados[0]))&& (@$dados[1] != "") &&(@$dados[2] != "") && (@$dados[3] != "")){


            /**
             * Como há dois tipos de matricula (matricula e matriculaCliente) e só possuímos
             * a matricula do cliente, então foi criado uma busca na tabela funcionario para
             * encontrar a matricula da empresa e preencher na foreign key da tabela ponto
             */
            $buscaMatricula = "SELECT matricula FROM funcionario WHERE matriculaCliente = '".$dados[0]."'";
            $query = mysqli_query($conexao, $buscaMatricula);
            $resultado =  mysqli_fetch_assoc($query);


            $matricula = "CTS-".trim($dados[0]);
            $sqlponto = sprintf("insert into ponto(FKfuncionario,
                                       dataPonto)
                                       values('%s',
                                              '%s')",$resultado['matricula'],datatoEN(@$dados[2]) );
            if($dados[0] != 'Nome' && !empty($linha)){
                    mysqli_query($conexao, $sqlponto) or die ("não deu");
                    $contRegistro++;
                $sqlponto = sprintf("SELECT idPonto from ponto where dataPonto = '%s' and FKfuncionario = '%s'",
                                                            datatoEN(@$dados[2]), $resultado['matricula'] );
                $queryPonto = mysqli_query($conexao, $sqlponto);
                $resultadoQueryPonto = mysqli_fetch_assoc($queryPonto);

                for ($i = 4; $i < 15; $i = $i + 2){
                    if(!empty($dados[$i])){
                        $sqlRegistro = sprintf("insert into registro (entrada,saida, FKponto) values
                          ('%s', '%s', %d)", $dados[4], $dados[5], $resultadoQueryPonto['idPonto']);
                    }

                }

             }

            }
        }

        if ($contRegistro != 0){
            echo "<script>alert('Arquivo importado com sucesso! Total de registros:  $contRegistro. ')</script>";
            fclose($arquivo);
        } else {
            echo "<p><h2>Nenhum registro importado!<br/>Verifique a planilha!</h2></p>";
            fclose($arquivo);
        }
    }
}else{
   echo "<script>alert('Não foi recebido o nome do arquivo que deseja importar. Verificar com o Suporte')</script>";
   exit;
}
?>
</html>
<script language='JavaScript'>
//    document.location = '../horas/views_horas/admHoras.php';
</script>